home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
texte
/
qed
/
src
/
types.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-10-19
|
5KB
|
166 lines
#ifndef _qed_types_h_
#define _qed_types_h_
#define SETSIZE 32 /* Größe eines Sets in Longs */
#define SETMAX (SETSIZE*32 - 1) /* Maximale Elemente eines Sets */
typedef unsigned long SET[SETSIZE]; /* Menge */
/*
* Dateinamen, Pfade, Dateiauswahl
*/
#define MAX_PATH_LEN 256
typedef char PATH[MAX_PATH_LEN];
#define MAX_NAME_LEN 64
typedef char FILENAME[MAX_NAME_LEN];
/* Aufzählnungtypen */
typedef enum {tos, unix, apple, binmode} LINEENDING;
typedef enum {Atari, Latin, Mac, PC, LaTeX, HTML, ASCII} UMLAUTENCODING;
typedef enum {POS_CHANGE, LINE_CHANGE, TOTAL_CHANGE, NOP_CHANGE, SCROLL_UP,
SCROLL_DOWN, MOVE_UP, MOVE_DOWN, BLK_CHANGE, WT_CHANGE} CHANGE;
typedef enum {FALSE, TRUE} bool;
typedef struct
{
long x;
long y;
long w;
long h;
} LRECT;
#define MUSTER_LEN 7
typedef struct
{
char muster[MUSTER_LEN + 1]; /* Datei-Maske */
bool tab;
int tabsize;
bool einruecken;
bool umbrechen;
bool format_by_load;
bool format_by_paste;
int lineal_len;
char umbruch_str[35];
SET umbruch_set;
bool backup;
char backup_ext[4];
PATH kurzel;
char wort_str[34];
SET wort_set;
bool show_end;
} LOCOPT, *LOCOPTP;
typedef struct _zeile
{
struct _zeile *vorg;
struct _zeile *nachf;
char info;
int len; /* Länge in Bytes */
bool is_longest;
int exp_len; /* expandierte Länge */
} ZEILE, *ZEILEP;
typedef struct
{
ZEILE head;
ZEILE tail;
long lines;
LINEENDING ending; /* Zeilenende */
unsigned short max_line_len; /* Maximale Zeilenlänge */
} RING, *RINGP;
typedef struct _text
{
struct _text *next;
int link; /* Fensterhandle */
RING text; /* Der Text */
long file_date_time; /* Datei-Datum und Zeit */
ZEILEP cursor_line; /* zeigt auf aktuellen Textzeile */
int xpos; /* x-Position des Cursors im Text */
long ypos; /* y-Position des Cursors im Text */
long moved; /* Text wurde seit letztem Sichern verändert */
ZEILEP p1,p2; /* Zeiger für Block */
long z1,z2; /* ZeilenNr. für p1 und p2 */
int x1,x2; /* X-Pos für Block-Anfang und Ende */
bool cursor; /* Cursor anzeigen */
bool block; /* Es gibt einen Block */
bool blink; /* Cursor ist gerade wg. Blinken aus */
bool block_dir; /* Blockrichtung laut Eingabe */
bool up_down; /* War letzte Operation Up oder Down */
bool blk_mark_mode; /* Block wird durch Cursor aufgezogen */
bool readonly; /* Datei auf Disk schreibgeschützt */
int desire_x; /* Für UP und DOWN in [TASTEN] */
char info_str[256]; /* Text, der im Fenster-Info ausgegeben wird */
PATH filename; /* Name der Datei */
int filesys; /* Ergebnis von fs_case_sens(filename) */
bool namenlos; /* Datei hat noch keinen Name */
LOCOPTP loc_opt; /* Zeiger auf lokalen Optionen */
long asave; /* letzter Autosave (min) */
ZEILEP max_line; /* längeste Zeile */
} TEXT, *TEXTP;
typedef void (*TEXT_DOFUNC)(TEXTP t_ptr);
#define WINSTRLEN 128
typedef struct _window
{
struct _window *next;
int class; /* Klasse des Fensters */
int init; /* Nummer des Fensters für die Konfig */
int handle; /* Handle für Fenster */
int kind; /* Art des Fensters */
int flags; /* Flags des Fensters */
LRECT doc; /* Position und Größe des Dokumentes */
int xfac; /* X-Factor des Dokumentes */
int yfac; /* Y-Factor des Dokumentes */
int w_width; /* Fensterbreite in Einheiten */
int w_height; /* Fensterhöhe in Einheiten */
GRECT work; /* Arbeitsbereich */
char title[WINSTRLEN]; /* Titel des Fensters (mit ' ' und '*') */
char info[WINSTRLEN]; /* Infozeile des Fensters */
int icon_x, icon_y; /* Position des Icons */
GRECT old_size; /* Absolute Größe vor dem Iconify */
void (*draw) (struct _window *window, GRECT *d);
void (*snap) (struct _window *window, GRECT *new, int mode);
void (*click) (struct _window *window, int m_x, int m_y, int bstate, int kstate, int breturn);
void (*unclick) (struct _window *window);
bool (*key) (struct _window *window, int kstate, int kreturn);
void (*top) (struct _window *window);
void (*ontop) (struct _window *window);
void (*untop) (struct _window *window);
void (*bottom) (struct _window *window);
void (*close) (struct _window *window);
void (*iconify) (struct _window *window);
void (*uniconify) (struct _window *window);
} WINDOW, *WINDOWP;
typedef void (*WIN_DOFUNC)(WINDOWP w);
typedef void (*WIN_CRTFUNC)(WINDOWP w);
typedef struct
{
char name[9]; /* GEM-Name der Shell */
PATH makefile;
} SHELLENTRY;
typedef struct _posentry
{
struct _posentry *next;
PATH filename;
long zeile;
int spalte;
} POSENTRY;
#endif